home *** CD-ROM | disk | FTP | other *** search
- /*************************************************************************/
- /* */
- /* Includes */
- /* */
- /*************************************************************************/
-
- #include "resistor_Includes.h"
- #include "resistor.h"
-
- /*************************************************************************/
- /* */
- /* Functions */
- /* */
- /*************************************************************************/
-
- /// Werte-Matrix
-
- char werte[13][7]=
- {"black ",
- "brown ",
- "red ",
- "orange ",
- "yellow ",
- "green ",
- "blue ",
- "violet ",
- "grey ",
- "white ",
- "silver ",
- "gold ",
- "no ring"
- };
-
- int ringvalue[] = { 0,0,0 };
- int faktor=1; // Bereich
- ULONG bval=0; //Zwischenvariable
- ///
- /// viewvalue
- void viewval(struct Gadget *wingads[],struct Window *win)
- {
-
- ULONG cval=0;
-
- if (bval > 9999)
- {
- if (faktor == 3) goto ende;
- faktor++;
- bval = bval/1000;
- viewval(wingads,win);
- GT_SetGadgetAttrs(wingads[CYID_Bereich], win, NULL, GTCY_Active,(ULONG)faktor, TAG_DONE);
- }
-
- ende:
- if (bval > 999999999) bval = 0;
- cval=bval;
- GT_SetGadgetAttrs(wingads[INID_Wert],win,NULL,GTIN_Number,cval,TAG_DONE);
- GT_RefreshWindow(win,NULL);
- }
- ///
- /// calcvalue
- void calcvalue(struct Gadget *wingads[],struct Window *win,int ringnr)
- {
- float rfak=1, cfak=1;
- int compval=ringvalue[2];
- ULONG cval=0;
-
- if (ringnr == 3)
- {
- if (ringvalue[2] == 10)
- {
- compval = 1;
- GT_SetGadgetAttrs(wingads[CYID_Bereich], win, NULL, GTCY_Active,(ULONG)0, TAG_DONE);
- }
- if (ringvalue[2] == 11)
- {
- compval = 2;
- GT_SetGadgetAttrs(wingads[CYID_Bereich], win, NULL, GTCY_Active,(ULONG)0, TAG_DONE);
- }
- }
-
- switch (compval)
- {
- case 0:
- cfak = 1;
- break;
- case 1:
- cfak = 10;
- break;
- case 2:
- cfak = 100;
- break;
- case 3:
- cfak = 1000;
- break;
- case 4:
- cfak = 10000;
- break;
- case 5:
- cfak = 100000;
- break;
- case 6:
- cfak = 1000000;
- break;
- case 7:
- cfak = 10000000;
- break;
- case 8:
- cfak = 100000000;
- break;
- case 9:
- cfak = 1000000000;
- break;
- default:
- break;
- }
-
- switch(faktor)
- {
- case 0:
- rfak = 1000;
- break;
- case 1:
- rfak = 1;
- break;
- case 2:
- rfak = 1000;
- break;
- case 3:
- rfak = 1000000;
- break;
- }
- if (faktor == 0)
- bval = (ULONG)((((10*ringvalue[0])+(ringvalue[1]))*cfak));
- else
- bval = (ULONG)((((10*ringvalue[0])+(ringvalue[1]))*cfak))/rfak;
- viewval(wingads,win);
- }
- ///
- ///calccolor
- void calccolor(int value,struct Gadget *wingads[],struct Window *win)
- {
- int first, second, third, i=0;
- int milli[]={10,11,0,1,2,3,4,5,6,7};
-
- if (faktor == 0)
- {
- if (value<100)
- {
- GT_SetGadgetAttrs(wingads[TXID_1Ring],win,NULL,GTTX_Text,(ULONG)("Input "),TAG_DONE);
- GT_SetGadgetAttrs(wingads[TXID_2Ring],win,NULL,GTTX_Text,(ULONG)("atleast"),TAG_DONE);
- GT_SetGadgetAttrs(wingads[TXID_3Ring],win,NULL,GTTX_Text,(ULONG)("3digits"),TAG_DONE);
- goto ende;
- }
- }
- else
- {
- if (value<10)
- {
- GT_SetGadgetAttrs(wingads[TXID_1Ring],win,NULL,GTTX_Text,(ULONG)("Input "),TAG_DONE);
- GT_SetGadgetAttrs(wingads[TXID_2Ring],win,NULL,GTTX_Text,(ULONG)("atleast"),TAG_DONE);
- GT_SetGadgetAttrs(wingads[TXID_3Ring],win,NULL,GTTX_Text,(ULONG)("2digits"),TAG_DONE);
- goto ende;
- }
- }
-
- while(value>=100)
- {
- value = value/10;
- i++;
- }
-
- first = value/10;
- second = value%10;
- if (faktor>0)
- third = i+((faktor-1)*3);
- else
- third = i;
-
-
- ringvalue[0] = first;
- ringvalue[1] = second;
- ringvalue[2] = third;
- //printf("%d\n",first); //nur zum Test
- //printf("%d\n",second);
- //printf("%d\n",third);
-
- GT_SetGadgetAttrs(wingads[TXID_1Ring],win,NULL,GTTX_Text,(ULONG)(werte[first]),TAG_DONE);
- GT_SetGadgetAttrs(wingads[TXID_2Ring],win,NULL,GTTX_Text,(ULONG)(werte[second]),TAG_DONE);
- switch (faktor)
- {
- case 0:
- if (third>0) GT_SetGadgetAttrs(wingads[TXID_3Ring],win,NULL,GTTX_Text,(ULONG)(werte[milli[third-1]]),TAG_DONE);
- break;
- case 1:
- case 2:
- case 3:
- if (third>9)
- {
- GT_SetGadgetAttrs(wingads[TXID_3Ring],win,NULL,GTTX_Text,(ULONG)("to big!"),TAG_DONE);
- break;
- }
- else
- {
- GT_SetGadgetAttrs(wingads[TXID_3Ring],win,NULL,GTTX_Text,(ULONG)(werte[third]),TAG_DONE);
- break;
- }
- }
- ende:
- GT_RefreshWindow(win,NULL);
- }
- ///
- ///Fehlemeldung
- void fehler(struct Window *win,struct Gadget *wingads[])
- {
- GT_SetGadgetAttrs(wingads[TXID_1Ring],win,NULL,GTTX_Text,(ULONG)("Value "),TAG_DONE);
- GT_SetGadgetAttrs(wingads[TXID_2Ring],win,NULL,GTTX_Text,(ULONG)("is "),TAG_DONE);
- GT_SetGadgetAttrs(wingads[TXID_3Ring],win,NULL,GTTX_Text,(ULONG)("to big!"),TAG_DONE);
- GT_SetGadgetAttrs(wingads[INID_Wert],win,NULL,GTIN_Number,(UWORD)0,TAG_DONE);
- GT_RefreshWindow(win,NULL);
- }
- ///
- /// Function for Writing Ringlabels
- void WritetoRingsA(char *color,struct Gadget *wingads[],struct Window *win,int ringnr)
- {
-
- switch (ringnr)
- {
- case 1:
- GT_SetGadgetAttrs(wingads[TXID_1Ring],win,NULL,GTTX_Text,(ULONG)color,TAG_DONE);
- GT_RefreshWindow(win,NULL);
- break;
- case 2:
- GT_SetGadgetAttrs(wingads[TXID_2Ring],win,NULL,GTTX_Text,(ULONG)color,TAG_DONE);
- GT_RefreshWindow(win,NULL);
- break;
- case 3:
- GT_SetGadgetAttrs(wingads[TXID_3Ring],win,NULL,GTTX_Text,(ULONG)color,TAG_DONE);
- GT_RefreshWindow(win,NULL);
- break;
- default:
- break;
- }
- }
-
- void WritetoRingsB(char *color,struct Gadget *wingads[],struct Window *win,int ringnr)
- {
- GT_SetGadgetAttrs(wingads[TXID_4Ring],win,NULL,GTTX_Text,(ULONG)color,TAG_DONE);
- GT_RefreshWindow(win,NULL);
-
- }
- ///
- ///Window
- /* Functions for Window */
- int UserSetupWindow(struct Window *win,struct Gadget *wingads[],int ringnr)
- {
- return ringnr;
- }
- int INWertClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- int value=0;
- GT_GetGadgetAttrs(wingads[INID_Wert], win, NULL, GTIN_Number,(ULONG)&value, TAG_DONE);
- calccolor(value,wingads,win);
- calcvalue(wingads,win,ringnr);
- return ringnr;
- }
- int CYBereichClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- int cycnr=0;
- GT_GetGadgetAttrs(wingads[CYID_Bereich], win, NULL, GTCY_Active,(ULONG)&cycnr, TAG_DONE);
- faktor = cycnr;
- calcvalue(wingads,win,ringnr);
- return ringnr;
- }
- int CYToleranzClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- ULONG cycnr = 0;
- int colnr[]= {12,10,11,1,2,5,6,7};
- GT_GetGadgetAttrs(wingads[CYID_Toleranz], win, NULL, GTCY_Active,(ULONG)&cycnr, TAG_DONE);
- WritetoRingsB(werte[colnr[cycnr]],wingads,win,ringnr);
- return ringnr;
- }
- int BTschwarz_wClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- if (ringnr == 1) {ringnr--; goto ende;}
- ringvalue[ringnr-1] = 0;
- WritetoRingsA(werte[0],wingads,win,ringnr);
- calcvalue(wingads,win,ringnr);
- ende:
- return ringnr;
- }
- int BTbraun_wClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- ringvalue[ringnr-1] = 1;
- WritetoRingsA(werte[1],wingads,win,ringnr);
- calcvalue(wingads,win,ringnr);
- return ringnr;
- }
- int BTrot_wClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- ringvalue[ringnr-1] = 2;
- WritetoRingsA(werte[2],wingads,win,ringnr);
- calcvalue(wingads,win,ringnr);
- return ringnr;
- }
- int BTorange_wClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- ringvalue[ringnr-1] = 3;
- WritetoRingsA(werte[3],wingads,win,ringnr);
- calcvalue(wingads,win,ringnr);
- return ringnr;
- }
- int BTgelb_wClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- ringvalue[ringnr-1] = 4;
- WritetoRingsA(werte[4],wingads,win,ringnr);
- calcvalue(wingads,win,ringnr);
- return ringnr;
- }
- int BTgruen_wClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- ringvalue[ringnr-1] = 5;
- WritetoRingsA(werte[5],wingads,win,ringnr);
- calcvalue(wingads,win,ringnr);
- return ringnr;
- }
- int BTblau_wClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- ringvalue[ringnr-1] = 6;
- WritetoRingsA(werte[6],wingads,win,ringnr);
- calcvalue(wingads,win,ringnr);
- return ringnr;
- }
- int BTviolett_wClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- ringvalue[ringnr-1] = 7;
- WritetoRingsA(werte[7],wingads,win,ringnr);
- calcvalue(wingads,win,ringnr);
- return ringnr;
- }
- int BTgrau_wClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- if (ringnr == 3) {fehler(win,wingads); goto ende;}
- ringvalue[ringnr-1] = 8;
- WritetoRingsA(werte[8],wingads,win,ringnr);
- calcvalue(wingads,win,ringnr);
- ende:
- return ringnr;
- }
- int BTweiss_wClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- if (ringnr == 3) {fehler(win,wingads); goto ende;}
- ringvalue[ringnr-1] = 9;
- WritetoRingsA(werte[9],wingads,win,ringnr);
- calcvalue(wingads,win,ringnr);
- ende:
- return ringnr;
- }
- int BTsilber_wClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- if (ringnr == 3)
- {
- ringvalue[ringnr-1] = 10;
- WritetoRingsA(werte[10],wingads,win,ringnr);
- calcvalue(wingads,win,ringnr);
- }
- else ringnr--;
- return ringnr;
- }
- int BTgold_wClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- if (ringnr == 3)
- {
- ringvalue[ringnr-1] = 11;
- WritetoRingsA(werte[11],wingads,win,ringnr);
- calcvalue(wingads,win,ringnr);
- }
- else ringnr--;
- return ringnr;
- }
- int BTsilber_tClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- GT_SetGadgetAttrs(wingads[CYID_Toleranz],win,NULL,GTCY_Active,(UWORD)1,TAG_DONE);
- WritetoRingsB(werte[10],wingads,win,ringnr);
- return ringnr;
- }
- int BTgold_tClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- GT_SetGadgetAttrs(wingads[CYID_Toleranz],win,NULL,GTCY_Active,(UWORD)2,TAG_DONE);
- WritetoRingsB(werte[11],wingads,win,ringnr);
- return ringnr;
- }
- int BTbraun_tClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- GT_SetGadgetAttrs(wingads[CYID_Toleranz],win,NULL,GTCY_Active,(UWORD)3,TAG_DONE);
- WritetoRingsB(werte[1],wingads,win,ringnr);
- return ringnr;
- }
- int BTrot_tClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- GT_SetGadgetAttrs(wingads[CYID_Toleranz],win,NULL,GTCY_Active,(UWORD)4,TAG_DONE);
- WritetoRingsB(werte[2],wingads,win,ringnr);
- return ringnr;
- }
- int BTgruen_tClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- GT_SetGadgetAttrs(wingads[CYID_Toleranz],win,NULL,GTCY_Active,(UWORD)5,TAG_DONE);
- WritetoRingsB(werte[5],wingads,win,ringnr);
- return ringnr;
- }
- int BTblau_tClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- GT_SetGadgetAttrs(wingads[CYID_Toleranz],win,NULL,GTCY_Active,(UWORD)6,TAG_DONE);
- WritetoRingsB(werte[6],wingads,win,ringnr);
- return ringnr;
- }
- int BTviolett_tClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- GT_SetGadgetAttrs(wingads[CYID_Toleranz],win,NULL,GTCY_Active,(UWORD)7,TAG_DONE);
- WritetoRingsB(werte[7],wingads,win,ringnr);
- return ringnr;
- }
- int BTneuClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- ringnr = 0;
- GT_SetGadgetAttrs(wingads[TXID_1Ring],win,NULL,GTTX_Text,(ULONG)("1.ring"),TAG_DONE);
- GT_SetGadgetAttrs(wingads[TXID_2Ring],win,NULL,GTTX_Text,(ULONG)("2.ring"),TAG_DONE);
- GT_SetGadgetAttrs(wingads[TXID_3Ring],win,NULL,GTTX_Text,(ULONG)("3.ring"),TAG_DONE);
- GT_SetGadgetAttrs(wingads[TXID_4Ring],win,NULL,GTTX_Text,(ULONG)("no ring"),TAG_DONE);
- GT_SetGadgetAttrs(wingads[CYID_Bereich],win,NULL,GTCY_Active,(UWORD)1,TAG_DONE);
- GT_SetGadgetAttrs(wingads[CYID_Toleranz],win,NULL,GTCY_Active,(UWORD)0,TAG_DONE);
- GT_SetGadgetAttrs(wingads[INID_Wert],win,NULL,GTIN_Number,(UWORD)0,TAG_DONE);
- ringvalue[0] = 0;
- ringvalue[1] = 0;
- ringvalue[2] = 0;
- faktor=1;
- GT_RefreshWindow(win,NULL);
- return ringnr;
- }
- int BTQuitClicked(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,int ringnr)
- {
- Signal(FindTask(NULL), SIGBREAKF_CTRL_C);
- return ringnr;
- }
-
- ///
-